class WebSocketService {
  constructor(socket) {
    this.socket = socket
  }

  /**
   * @description: 调用connect事件可以连接服务器
   * @return {*}
   */
  connect() {
    this.socket.connect()
  }

  /**
   * @description: 客户端主动断连接
   * @return {*}
   */
  disconnect() {
    this.socket.disconnect()
  }

  /**
   * @description: 删除侦听器
   * @param {*} lister：需要移除的侦听
   * @return {*}
   */
  removeAllListeners(lister) {
    lister ? this.socket.removeAllListeners(lister) : this.socket.removeAllListeners()
  }

  /**
   * @description: 发送事件到服务器
   * @param {*} event：事件名称
   * @param {*} data：传递的数据
   * @return {*}
   */
  sendMessage(event, data) {
    this.socket.emit(event, data)
  }

  /**
   * @description: 监听服务端的事件
   * @param {*} event：事件名
   * @param {*} callback：回调函数
   * @return {*}
   */
  receiveMessage(event, callback) {
    this.socket.on(event, callback)
  }
}

export default WebSocketService
